import ACCESS_ENUM from "@/access/accessEnum";

/**
 * 检查权限 - 判断当前登录用户是否具有某个权限
 * @param loginUser 当前登录用户
 * @param needAccess 需要的权限
 * @return boolean 有无权限
 */
const checkAccess = (loginUser: any, needAccess = ACCESS_ENUM.NOT_LOGIN) => {
  // 获取当前登录用户具有的权限
  const loginUserAccess = loginUser?.userRole ?? ACCESS_ENUM.NOT_LOGIN;

  // 如果页面不需要任何权限，直接放行
  if (needAccess === ACCESS_ENUM.NOT_LOGIN) {
    return true;
  }

  // 如果页面需要的权限为普通用户，即登录就可才放行
  if (needAccess === ACCESS_ENUM.USER) {
    // 需要的权限为普通用户，只要为未登录的，就不放行
    if (loginUserAccess === ACCESS_ENUM.NOT_LOGIN) {
      return false;
    }
  }

  // 如果页面需要的是管理员页面，需要判断是否有管理员权限
  if (needAccess === ACCESS_ENUM.ADMIN) {
    // 不为管理员，无权限，不放行
    if (loginUserAccess !== ACCESS_ENUM.ADMIN) {
      return false;
    }
  }

  return true;
};

export default checkAccess;
